// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This file contains unit tests for Windows internationalization funcs.

#include "testing/gtest/include/gtest/gtest.h"

#include <stddef.h>

#include "base/win/i18n.h"
#include "base/win/windows_version.h"

namespace base {
namespace win {
    namespace i18n {

        // Tests that at least one user preferred UI language can be obtained.
        TEST(I18NTest, GetUserPreferredUILanguageList)
        {
            std::vector<std::wstring> languages;
            EXPECT_TRUE(GetUserPreferredUILanguageList(&languages));
            EXPECT_NE(static_cast<std::vector<std::wstring>::size_type>(0),
                languages.size());
            for (std::vector<std::wstring>::const_iterator scan = languages.begin(),
                                                           end = languages.end();
                 scan != end; ++scan) {
                EXPECT_FALSE((*scan).empty());
            }
        }

        // Tests that at least one thread preferred UI language can be obtained.
        TEST(I18NTest, GetThreadPreferredUILanguageList)
        {
            std::vector<std::wstring> languages;
            EXPECT_TRUE(GetThreadPreferredUILanguageList(&languages));
            EXPECT_NE(static_cast<std::vector<std::wstring>::size_type>(0),
                languages.size());
            for (std::vector<std::wstring>::const_iterator scan = languages.begin(),
                                                           end = languages.end();
                 scan != end; ++scan) {
                EXPECT_FALSE((*scan).empty());
            }
        }

    } // namespace i18n
} // namespace win
} // namespace base
